package com.william.jdbcplus.demo.entity;

import com.william.jdbcplus.common.annotation.TableColumn;
import com.william.jdbcplus.common.annotation.TableId;
import com.william.jdbcplus.common.annotation.Table;
import com.william.jdbcplus.common.entity.Entity;
import com.william.jdbcplus.common.enums.IdType;
import lombok.Getter;
import lombok.Setter;

import java.util.Date;

/**
 * 仪器编号排序Entity
 *
 * @author NiMing
 * @version 2016-04-25
 */
@Table("lis_test")
@Getter
@Setter
public class Test implements Entity {

    @TableId(value = "test_id", type = IdType.INPUT)
    private String id; // 主键id

    @TableColumn("test_num")
    private Long testNum; // 测试编号

    @TableColumn("test_date")
    private Date testDate; // 测试日期:不包括具体时间，只包含年月日

    @TableColumn("inst_id")
    private Long instIdTest; // 测试仪器id

    @TableColumn("inst_code")
    private String instCodeTest; // 测试仪器编码

    @TableColumn("inst_name")
    private String instNameTest; // 测试仪器名称

    @TableColumn("inst_pre_testnum")
    private String instPreTestNum; //仪器前缀码

    @TableColumn("auto_audit_flag")
    private Integer autoAuditFlag = 0; //仪器自动审核开关

    @TableColumn("depart_id")
    private Long departId; // 就诊科室id

    @TableColumn("depart_code")
    private String departCode; // 就诊科室编码

    @TableColumn("depart_name")
    private String departName; // 就诊科室名称

    @TableColumn("order_pat_id")
    private String orderPatId; // 所属病人id

    @TableColumn("source")
    private Integer source; //请求来源：外部系统/内部系统(具体哪个模块)(参照枚举值：SourceOfOrder)

    @TableColumn("pat_id")
    private String patId; // 门诊卡号

    @TableColumn("order_pat_barcode")
    private String patBarcode; // 病人唯一号：身份证，其他索引

    @TableColumn("pat_medical_recordno")
    private String patMedicalRecNo; // 病人电子病历档案号

    @TableColumn("order_pat_name")
    private String patName; // 所属病人姓名

    @TableColumn("order_pat_sex")
    private Integer patSex; // 性别 1男 2女

    @TableColumn("order_pat_age")
    private Integer patAge; //病人年龄(具体天数)

    @TableColumn("order_pat_ageunit")
    private String patAgeShow; //存储年龄及单位(包含年龄和年龄单位)

    @TableColumn("order_ptype_id")
    private String ptype; // 病人类型，参考:PTypeEnum

    @TableColumn("order_invoice_number")
    private String invoiceNumber; // 发票号

    @TableColumn("order_reg_no")
    private String regNo; // 就诊(住院)号

    @TableColumn("orderitem_ids")
    private String orderItemIds; //医嘱项目id组成的字符串，多个以逗号分隔

    @TableColumn("orderitem_codes")
    private String orderItemCodes; //医嘱项目外部编码组成的字符串，多个以逗号分隔

    @TableColumn("orderitem_names")
    private String orderItemNames; //医嘱项目名称组成的字符串，多个以逗号分隔

    @TableColumn("barcodeid")
    private String barcode; // 条码号

    @TableColumn("test_state")
    private Integer state; // 检验中、检验完、已审核、已打印

    @TableColumn("test_userid")
    private Long testUserId; // 测试人id

    @TableColumn("test_user_code")
    private String testUserCode; // 测试人编码

    @TableColumn("test_user_name")
    private String testUserName; // 测试人名称

    @TableColumn("test_remark")
    private String testRemark; // 测试备注

    @TableColumn("sample_id")
    private Long sampleTypeId; // 标本类型id

    @TableColumn("sample_code")
    private String sampleTypeCode; // 标本类型编码

    @TableColumn("sample_name")
    private String sampleTypeName; // 标本类型名称

    @TableColumn("speciality_id")
    private Long specialityId; //所属专业组id

    @TableColumn("office_id")
    private Long officeId; // 执行地点id

    @TableColumn("office_code")
    private String officeCode; // 执行地点编码

    @TableColumn("office_name")
    private String officeName; // 执行地点名称

    @TableColumn("domain_id")
    private Long domainId; //所属区域云id

    @TableColumn("hosp_id")
    private Long hospId; // 就诊医院id

    @TableColumn("hosp_code")
    private String hospCode; //就诊医院系统编码

    @TableColumn("hosp_name")
    private String hospName; // 就诊医院名称

    @TableColumn("dsthosp_id")
    private Long dstHospId; // 检验医院id

    @TableColumn("dsthosp_code")
    private String dstHospCode; //检验医院系统编码

    @TableColumn("dsthosp_name")
    private String dstHospName; // 检验医院名称

    @TableColumn("order_type")
    private Integer orderType = 0; // 病人订单项目类型   0 常规检查，1 急查

    @TableColumn("sent_inst_flag")
    private Integer sentInstFlag = 0; // 上传标记

    @TableColumn("test_flag")
    private Integer testFlag = 0; // 测试标记

    @TableColumn("data_flag")
    private Integer dataFlag; // 数据标记

    @TableColumn("print_flag")
    private Integer printFlag = 0; // 打印标记

    @TableColumn("sent_count")
    private Integer sentCount = 0; //发送次数

    @TableColumn("repeat_flag")
    private Integer repeatFlag = 0; // 复查标记

    @TableColumn("repeat_time")
    private Date repeatTime; // 复查时间

    @TableColumn("repeat_userid")
    private Long repeatUserid; // 复查人

    @TableColumn("write_time")
    private Date writeTime = new Date(); // 写入时间

    @TableColumn("write_userid")
    private Long writeUserid; // 写入人

    @TableColumn("critical_flag")
    private Integer criticalFlag = 0; // 危急值标记

    @TableColumn("audit_time")
    private Date auditTime; // 审核报告时间

    @TableColumn("test_no")
    private String testSerialNo; // 序列发生器

}
